package com.king.juc.n8.threadpooldemo.tomcat;

import lombok.extern.slf4j.Slf4j;

/**
 * Tomcat 线程池
 *  Connector(NIO EndPoint)
 *      LimitLatch: 用来限流, 可以控制最大连接个数, 类似 J.U.C 中的 Semaphore
 *      Acceptor: 只负责【接收新的 socket 连接】
 *      Poller: 只负责监听 socket channel 是否有 【可读的 I/O 事件】
 *      一旦可读, 封装一个任务对象(socketProcessor), 提交给 Executor 线程池处理
 *      Executr 线程池中的工作线程最终负责 【处理请求】
 *
 * Connector配置
 *      配置项                 默认值     说明
 *      acceptorThreadCount     1       acceptor线程数量
 *      pollerThreadCount       1       poller线程数量
 *      minSpareThreads         10      核心线程数, 即corePoolSize
 *      maxThreads              200     最大线程数, 即 maximumPoolSize
 *      executor                -       Executor名称, 用来引用下面的Executor
 *
 * Executor线程配置
 *      配置项                 默认值     说明
 *      threadPriority          5       线程优先级
 *      daemon                  true    是否守护线程
 *      minSpareThreads         25      核心线程数, 即 corePoolSize
 *      maxThreads              200     最大线程数, 即 maximumPoolSize
 *      maxIdleTime             6000    线程生存时间, 单位是毫秒, 默认值即1分钟
 *      maxQueueSize            Integer.MAX_VALUE   队列长度
 *      prestartminSpareThreads false   核心线程是否在服务器启动时启动
 *
 * @author king
 * @date 2020/12/12 16:02
 */
@Slf4j(topic = "c.TomcatDemo")
public class TomcatDemo {
    public static void main(String[] args) {

    }
}
